能夠實現「身份鑑別」、「檢查訊息完整性」兩種功能的機制。即使是密文,也可能在傳輸時遭到竄改,解密成不同的內容產生誤會,訊息鑑別碼就是為了避免這種情況發生。
MAC可以想像成由金鑰和密文排列組合成字串「雜湊碼」。MAC的製作方式有好幾種,最常見的有HAMC(全名為雜湊訊息鑑別碼(hash-based MAC)使用一個加密的雜湊函數(如SHA-256)與一個密鑰一起生成MAC值。)
1.傳送方先把訊息跟密鑰一起進MAC函數生成MAC值
2.傳送方將原始消息和其相對應的MAC值,一起傳送給接收方。
3.接收方使用相同的密鑰和MAC函數,對收到的訊息計算新的MAC值,計算出的值與接收到的值一樣,那麼就能確認訊息是真實的和完整的。
消息認證碼的主要問題是需要提前共享密鑰,並且當密鑰可能被多方同時擁有(甚至洩露)的場景下,無法追蹤消息的真實來源。如果採用非對稱加密算法,則能有效的解決這個問題,即數字簽章
。
(下一篇會說明數字簽章)